//配置封装axios请求
// 引入axios
import axios from 'axios';

// instance就是一个设置过后的axios
// 导出的时候导出它
// console.log(process.env.NOOE_ENV);
// console.log(process.env.VUE_APP_BASE_URL);
const instance = axios.create({
    // 配置公共的请求地址
    baseURL: 'api',  //这里设置的是vue.config.js中的跨域的代理api
    // 配置请求时长，5秒内没有返回数据就中断请求
    timeout: 5000,
    // 设置请求头
    // headers: { 'X-Custom-Header': 'foobar' }
    headers: { 'Content-Type': 'application/json' }
});


// 添加请求拦截器
instance.interceptors.request.use(function (config) {
    //请求之前执行该函数， 一般在该处设置token 后端就可以从请求头中获取该参数
    // 获取token
    const token = localStorage.getItem('token')
    // 判断有token就设置请求头
    if (token) {
        // 发送请求前给headers属性设置请求头
        // config是一个对象形式，包含了headers 请求头
        config.headers['x-Nideshop-Token'] = token
    }

    // 在发送请求之前做些什么
    return config;
}, function (error) {
    // 对请求错误做些什么
    return Promise.reject(error);
});

//响应拦截器
instance.interceptors.response.use(response => {
    // 可以在这里对状态码的判断 或者更新一下本地储存内容
    //1.非200响应
    //2.token过期
    //3.异地登陆
    //4.非对象加密的解密
    return response
}, function (error) {
    // 对请求错误做些什么
    return Promise.reject(error);
})
export default instance
